Passed
Push — development ( e131c7...d0a4d7 )
by Peter
05:27 queued 13s
created

AppModule   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 33
dl 0
loc 37
rs 10
c 0
b 0
f 0
wmc 3
1
import { ConfigModule } from '@nestjs/config';
2
import { AppController } from './app.controller';
3
import { AppService } from './app.service';
4
import { UsersModule } from './users/users.module';
5
import { AuthModule } from './auth/auth.module';
6
import { TypeOrmModule } from '@nestjs/typeorm';
7
import { User } from './users/entities/user.entity';
8
import { Bicycle } from './bicycles/entities/bicycle.entity';
9
import UserDataSeeder from './database/seeds/user-data.seed';
10
import BicycleSeeder from './database/seeds/bicycles-data.seed';
11
import ZoneSeeder from './database/seeds/zones-data.seed';
12
import TravelSeeder from './database/seeds/travel-data.seed';
13
import { Module, OnModuleInit } from '@nestjs/common';
14
import { DataSource } from 'typeorm';
15
import { BicyclesModule } from './bicycles/bicycles.module';
16
import { ZonesModule } from './zones/zones.module';
17
import { Zone } from './zones/entities/zone';
18
import { SpeedZone } from './zones/entities/speed-zone';
19
import { CitiesModule } from './cities/cities.module';
20
import { City } from './cities/entities/city.entity';
21
import { TravelModule } from './travel/travel.module';
22
import { Travel } from './travel/entities/travel.entity';
23
import { HealthModule } from './health/health.module';
24
import { TokensModule } from './tokens/tokens.module';
25
import { Token } from './tokens/entities/token.entity/token.entity';
26
27
@Module({
28
  imports: [
29
    ConfigModule.forRoot({
30
      isGlobal: true,
31
    }),
32
    TypeOrmModule.forRoot({
33
      type: 'sqlite',
34
      database: process.env.NODE_ENV === 'test' ? ':memory:' : 'data/db.sqlite',
35
      entities: [User, Bicycle, Zone, SpeedZone, City, Travel, Token],
36
      synchronize: true,
37
    }),
38
    UsersModule,
39
    AuthModule,
40
    BicyclesModule,
41
    ZonesModule,
42
    CitiesModule,
43
    TravelModule,
44
    HealthModule,
45
    TokensModule,
46
  ],
47
  controllers: [AppController],
48
  providers: [AppService],
49
})
50
export class AppModule implements OnModuleInit {
51
  constructor(private dataSource: DataSource) {}
52
53
  async onModuleInit() {
54
    if (process.env.NODE_ENV === 'development') {
55
      const userSeeder = new UserDataSeeder();
56
      await userSeeder.run(this.dataSource);
57
      const bicycleSeeder = new BicycleSeeder();
58
      await bicycleSeeder.run(this.dataSource);
59
      const zoneSeeder = new ZoneSeeder();
60
      await zoneSeeder.run(this.dataSource);
61
      const travelSeeder = new TravelSeeder();
62
      await travelSeeder.run(this.dataSource);
63
    }
64
  }
65
}
66